package top.luckyluxcis.api;

import lombok.experimental.UtilityClass;
import top.luckyluxcis.RollApi;
import top.luckyluxcis.consts.ImageType;
import top.luckyluxcis.type.Barcode;
import top.luckyluxcis.type.Goods;
import top.luckyluxcis.util.MapUtil;

import java.util.Map;

/**
 * 商品条码信息查询，海量条码信息储备
 * @author Zhuang
 * @since 2023/9/21
 */
@SuppressWarnings("unused")
@UtilityClass
public class BarcodeUtil {
    private static final RollApi API = RollApi.getInstance();

    /**
     * 根据内容生成指定的条形码。
     *
     * @param content 需要生成二维码的商品code值
     * @param width   生成的图片宽度，默认500
     * @param height  生成图片的高度，默认300
     * @param type    返回类型，0-生成条形码图片的地址链接 1-生成条形码图片的base64字符串（注：Base64字符串前面默认添加了“data:image/jpg;base64,”，取值的时候请根据需要对这个内容进行处理）
     * @return {@link Barcode}
     */
    public static Barcode create(String content, Integer width, Integer height, ImageType type){
        Map<String, Object> params = MapUtil.<String, Object>builder()
                .put("content", content)
                .put("width", width)
                .put("height", height)
                .put("type", type.getCode())
                .build();
        return API.get("/barcode/create", params, Barcode.class);
    }

    /**
     * 根据条形码中对应的商品code获取对应的商品信息。
     *
     * @param barcode 扫面条形码后的商品code
     * @return {@link Goods}
     */
    public static Goods goodsDetail(String barcode){
        Map<String, Object> params = MapUtil.<String, Object>builder()
                .put("barcode", barcode)
                .build();
        return API.get("/barcode/goods/details", params, Goods.class);
    }
}
